import request from '@/config/axios'

// 告警 VO
export interface AlertVO {
  id: number // ID
  xff: string // XFF
  url: string // url
  alertTime: Date // 告警时间
  threatName: string // 威胁名称
  threatLevel: string // 威胁等级
  direction: string // 方向
  sourceIp: string // 源IP
  sourceIpLong: number // 源IPlong
  destIp: string // 目的IP
  destIpLong: number // 目的IPlong
  statusCode: string // 状态码
  status: number // 状态（0正常 1停用）
  remark: string // 备注
  syslogId: number // syslog ID
  attackType: string // 威胁类型
  sourcePort: number // 源端口
  destPort: number // 目的端口
  analyzeStep: string // 分析步骤
  attackStatus: number // 是否是攻击（0否 1是）
}

// 告警 API
export const AlertApi = {
  // 查询告警分页
  getAlertPage: async (params: any) => {
    return await request.get({ url: `/research/alert/page`, params })
  },

  // 查询告警详情
  getAlert: async (id: number) => {
    return await request.get({ url: `/research/alert/get?id=` + id })
  },

  // 新增告警
  createAlert: async (data: AlertVO) => {
    return await request.post({ url: `/research/alert/create`, data })
  },

  // 修改告警
  updateAlert: async (data: AlertVO) => {
    return await request.put({ url: `/research/alert/update`, data })
  },

  // 删除告警
  deleteAlert: async (id: number) => {
    return await request.delete({ url: `/research/alert/delete?id=` + id })
  },

  // 导出告警 Excel
  exportAlert: async (params) => {
    return await request.download({ url: `/research/alert/export-excel`, params })
  },
}
